1. Field of the Present Invention
The present invention generally relates to the field of computer networks and more specifically to a method for debugging network level problems from a remote location.
2. History of Related Art
Client-server computer networks are becoming increasingly pervasive in a wide range of applications. The various network protocols in use and the intricacies of client-sever interactions frequently make the debugging of network level problems an essential task. In networks wherein the clients are required to download an operating system kernel from a network server each time the client is booted, network level debugging during the boot timeframe is critical. Conventionally, debugging network level communication problems has been achieved with the use of widely distributed trace tools such as TCPDUMP or IPTRACE. These trace tools are loaded on the network server and produce a display or hardcopy of the packets exchanged between the client and server. Another approach to debugging network problems involves adding specialized hardware known as a xe2x80x9csnifferxe2x80x9d to the subnet of the client or server. Both of these conventional debugging methods, unfortunately, assume or require the presence of diagnostic personnel at the server site or the client site. Frequently, however, personnel capable of interpreting the information provided by conventional diagnostic techniques are in geographically distant locations from either the network client or server. A vendor of network hardware and software might be required to debug network communications problems for a large number of customers, none of whom would necessarily have the tools or personnel to perform the necessary debugging. Therefore, it would be highly desirable to implement a solution that enables diagnosis of network level communication problems at a location remote from either the network client or network server. The solution implemented should ideally have little if any impact on system performance, cost, and complexity, and should, to the extent possible leverage from existing diagnostic tools.
The problems identified above are addressed by a system and method according to the present invention for enabling remote diagnostics of client-server interactions. The invention contemplates enabling a diagnostic mode on the network client in which packets exchanged between the network client and network server are duplicated to a third party host. The invention permits remote diagnosis of client-server interactions and eliminates or greatly reduces the need for highly trained personnel and/or specialized hardware at the client site to correct problems.
Broadly speaking, the invention contemplates a computer network and network client where the network client includes a nonvolatile storage device for storing a packet replication indicator and a third party host identifier. The client further includes means for modifying the state of the packet replication indicator and the third party host identifier. The client has means for initiating a boot code sequence stored on a boot code storage device of the client. If the client detects a specified state of the packet replication indicator, the boot code sequence establishes a communication socket with a third party host identified by the third party host identifier and forwards copies or replicates of packets that are exchanged between the network client and a network server. In one embodiment the packets are replicated to the third party host until the boot sequence terminates. Packet replication may also be terminated, in the preferred embodiment, by an appropriate input sequence such as a keyboard entry at the third party host. The appropriate keyboard sequence prompts the third party host to terminate the dedicated socket. In addition, the third party host can send an ICMP message to the network client indicating that the socket has been terminated if the network client continues to send packets to the host. The ICMP message, in one embodiment, may alter the packet replication setting of the network client for the duration of the client""s power tenure. The third party host identifier is preferably comprised of an IP address portion and a third party host port identifier portion. In one embodiment, the means for modifying the packet replication indicator is invoked through a user interface that is produced in response to a specified input sequence during execution of the boot sequence. The boot code sequence may be initiated through the use of a reset button on the client or through a network wakeup event initiated by the network server. Packets are preferably replicated at the data link layer to minimize the effect of various hardware and media specific network implementations. The network interface, for example, may reside within a token ring or Ethernet subnet.
The invention further contemplates a computer network diagnostic method in which a communication socket is established between a network client and a third party host. Network packets are then communicated between the network client and a network server. Replicates of the network packets on the network client are generated while the network client is executing a boot sequence and the replicates are forwarded to a third party host. In one embodiment, a packet replication indicator and a third party host identifier are specified on the network prior to establishing the communication socket. In this embodiment, the communication socket is established in response to detecting that the packet replication indicator is set. The setting of the third party host identifier includes setting a third party host IP address and a third party host port number. The third party host port number is a user defined port number in the preferred embodiment. In one embodiment, the diagnostic method of the invention further includes invoking means for viewing the replicated network packets, such as a trace tool, on the host machine.